/*
 *
 *
 *
 */

#ifndef __H_MLN_REDIS_CACHE_H__
#define __H_MLN_REDIS_CACHE_H__

#include <pthread.h>

#include "plist.h"

typedef struct _mln_redis_arg_t {
    int dbid;
    int urlid;
    char *argname;
    int argname_len;
    int ref;
    pthread_rwlock_t lock;
    plist_t list;
} mln_redis_arg;

typedef struct _mln_redis_url_t{
    int dbid;
    char *url;
    int url_len;
    char md5[16];
    int ref;
    pthread_rwlock_t lock;
    plist_head_t args_head;
} mln_redis_url;


mln_redis_url* mln_redis_get_url(char *url, int url_len);
void mln_redis_put_url(mln_redis_url *url);
int mln_redis_del_url(char *url, int url_len);
int mln_redis_add_url(char *url, int url_len, int dbid);

mln_redis_arg* mln_redis_get_arg(char *url, int url_len, char *arg, int arg_len);
void mln_redis_put_arg(mln_redis_arg *arg);
int mln_redis_del_arg(char *url, int url_len, char *arg, int arg_len);
int mln_redis_add_arg(char *url, int url_len, char *arg, int arg_len, int dbid);


//cache timeout





#endif





